package org.cos.generation.util.predict;

/**
 * Interface of all kind of set which store the possible values.
 * @author ZXD
 *
 */

public interface PredictSet {

	public enum SetType {
		UNION,
		EQUAL,
		RANGE,
		PREFIX,
		SUFFIX,
	}
	
	/** 
	 * Check whether the set contains all possible values.
	 * If a set contains all possible values, it may means
	 * the possible values could not be predicted. 
	 * @return TRUE if the set contains all possible values.
	 */
	public boolean isAll();
	
	public SetType getType();
	
	public PredictSet getSet();
	
	public boolean contains(Object o);
}
